Aprenda cómo mintear coleccionables usando una API de transacciones serverless sin gas con Sequence. Implemente la API en un worker de Cloudflare para interacciones de usuario sin pagos de gas.
mkdir
, ingrese a la carpeta con cd
y ejecute pnpm init
para crear un package.json
.
A continuación, asegúrese de tener wrangler cli instalado en su proyecto y configure la palabra clave wrangler
como un alias en su sesión local de bash.
"Hello World" Worker
con control de versiones en git.
wrangler init
, respondiendo No
en los últimos 2 pasos para rechazar el versionado con git y el despliegue.
Esto clonará un repositorio inicial que puede usar para desplegar código en la nube.
wrangler dev
en la carpeta del proyecto para pruebas localescd
y ejecute el comando wrangler deploy
.
Esto debería mostrar una URL, que puede ingresar en el navegador como https://<app>.<account>.workers.dev
para ver el resultado Hello World!
.
Developer
para su proyecto en Sequence Builder, lo cual puede hacer siguiendo esta guíaminter permission
a su Sequence Wallet Transactions API Address
.
Para saber cuál es la dirección de la API de transacciones con la que está trabajando, primero debe:
generate local wallet
(solo para demostración)Recomendado
: También puede imprimir localmente la dirección de cuenta generada a partir de una clave privada de wallet EOA usando el siguiente fragmento de código:Contracts
, seleccione sus Linked contracts
y, en la pestaña Write Contract
, expanda el método grantRole
.
Complete con los siguientes datos:
bytes32 role
: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
address account
: <Generated Sequence Transactions API Wallet Address>
role
ingresado es el resultado de keccak256("MINTER_ROLE")
en solidity o ethers.keccak256(ethers.toUtf8Bytes("MINTER_ROLE"))
en javascript
Esto hace que solo su dirección específica pueda mintear desde el contrato; de lo contrario, dará error.
Complete la actualización del rol haciendo clic en write
y firme la transacción patrocinada.
ethers
y 0xsequence
para acceder a las APIs de sequence y realizar una validación de prueba que asegure que la solicitud proviene de una fuente confiable, una wallet de sequence.
proofString
y la address
proporcionados sean válidos, así como las variables de entorno.
El esqueleto de código colocado en src/index.ts
se vería así, con callContract
y getBlockNumber
simulados, usando el paso de verificación mencionado de llamar a verify
antes de cualquier llamada al contrato.
[vars]
en su wrangler.toml
.
window
requerido por los módulos web3.
Para evitar esto, agregue la siguiente línea a su archivo wrangler.toml
para hacer el entorno compatible.
wrangler deploy
Y realizar una solicitud curl para probar su endpoint así:
connect
y luego copy to clipboard
.
ETHAuthProof
con nadie, ya que permitiría que otra persona demuestre la propiedad de su wallet e interactúe con APIs específicas.
Por último, reemplace el url
con el de su app de este paso, el <some_proof>
con el valor generado que copió desde el dapp visor, y <some_address>
con la dirección de su wallet. Debería devolver simplemente el string simulado 0x
.
callContract
y getBlockNumber
que antes estaban simulados, de la siguiente manera: